<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>特殊属性的复制问题</title>
</head>
<body>

</body>
<script>
    const original = {
        a: 1,
        b: 2
    };
    // 添加一个不可枚举属性
    Object.defineProperty(original, 'c', {
        value: 3,
        enumerable: false
    });

    const shallowCopy = Object.assign({}, original);

    console.log(shallowCopy); // { a: 1, b: 2 }

    console.log('c' in original); // true
    console.log('c' in shallowCopy); // false

    // 在这个例子中，original 对象通过 Object.defineProperty 方法添加了一个不可枚举属性 c。
    // Object.assign({}, original) 只会复制 original 的可枚举属性，因此 shallowCopy 中并没有包含属性 c。
    // 这会导致在某些情况下，浅拷贝无法复制对象的所有属性，特别是那些通过非标准方法定义的属性或方法。
</script>
</html>